#pragma once

#include "Game.h"

class App
{
public:
	DECLARE_SINGLETON(App);

public:
	App();
	virtual ~App();

	virtual bool Init();
	virtual void Update();
	virtual void Shutdown();
	virtual bool Quit();

	void Run(HINSTANCE hInstance);

	HINSTANCE _hInstance() { return mhInst; }
	HWND _hWnd() { return mhWnd; }

	void Resize(int w, int h);

protected:
	HINSTANCE mhInst;
	HWND mhWnd;

	System * mSystem;
	D3D9RenderSystem * mRenderSystem;

	MGUI_Engine * mUIEngine;

	Game * mGame;
};

